package com.suray.attendance.model.pojo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author jly
 * @since 2023-09-20
 */
@Data
@ApiModel(value="ReportWorkInfo对象", description="")
@TableName("report_work_info")
public class ReportWorkInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "宜搭记录id")
    @TableId("yida_id")
    private String yidaId;

    @ApiModelProperty(value = "员工id")
    @TableField("user_id")
    private String userId;

    @ApiModelProperty(value = "员工姓名")
    @TableField("user_name")
    private String userName;

    @ApiModelProperty(value = "项目的工单单号")
    @TableField("project_order")
    private String projectOrder;

    @ApiModelProperty(value = "任务的节点名称")
    @TableField("task_name")
    private String taskName;

    @ApiModelProperty(value = "报工时间")
    @TableField("report_time")
    private LocalDate reportTime;

    @ApiModelProperty(value = "该任务的今天场内工人报工工时")
    @TableField("inner_expense_hours")
    private BigDecimal innerExpenseHours;

    @ApiModelProperty(value = "该任务的今天场外工人报工工时")
    @TableField("outer_expense_hours")
    private BigDecimal outerExpenseHours;

    @ApiModelProperty(value = "报告信息-任务状态 未开始=0  进行中=1  已完成=2  任务暂停=3")
    @TableField("status")
    private Integer status;

    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新时间")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;

    @ApiModelProperty(value = "节点任务下发的宜搭id,该次报工关联的任务下发表单的id")
    @TableField("task_distribution_yida_id")
    private String taskDistributionYidaId;

    @ApiModelProperty(value = "钉钉表单的修改时间")
    @TableField("modified_time")  // 使用第三张关系对应表进行任务和人员的对应关系
    private String modifiedTime;

    @ApiModelProperty(value = "默认为0=数据未作处理 1=已将该次报工数据同步至task_user 、 task_distribution 、 project_task_info = n：1：1;dataSyncStatus=1的数据报工成功后修改为2")
    @TableField("data_sync_status")
    private Integer dataSyncStatus;

    @ApiModelProperty(value = "报工人数")
    @TableField("report_people_number")
    private Integer reportPeopleNumber;

    @ApiModelProperty(value = "宜搭中该条数据的创建时间")
    @TableField("create_time_gmt")
    private LocalDateTime createTimeGmt;


    @ApiModelProperty(value = "报工员工erp编号")
    @TableField("project_user_code")
    private String projectUserCode;


    @ApiModelProperty(value = "该项目中员工实际上报的erp报工单号")
    @TableField("fact_erp_order")
    private String factErpOrder;

    public String getYidaId() {
        return yidaId;
    }

    public void setYidaId(String yidaId) {
        this.yidaId = yidaId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getProjectOrder() {
        return projectOrder;
    }

    public void setProjectOrder(String projectOrder) {
        this.projectOrder = projectOrder;
    }

    public String getTaskName() {
        return taskName;
    }

    public void setTaskName(String taskName) {
        this.taskName = taskName;
    }

    public LocalDate getReportTime() {
        return reportTime;
    }

    public void setReportTime(LocalDate reportTime) {
        this.reportTime = reportTime;
    }

    public BigDecimal getInnerExpenseHours() {
        return innerExpenseHours;
    }

    public void setInnerExpenseHours(BigDecimal innerExpenseHours) {
        this.innerExpenseHours = innerExpenseHours;
    }

    public BigDecimal getOuterExpenseHours() {
        return outerExpenseHours;
    }

    public void setOuterExpenseHours(BigDecimal outerExpenseHours) {
        this.outerExpenseHours = outerExpenseHours;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getTaskDistributionYidaId() {
        return taskDistributionYidaId;
    }

    public void setTaskDistributionYidaId(String taskDistributionYidaId) {
        this.taskDistributionYidaId = taskDistributionYidaId;
    }

    public String getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(String modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    public Integer getDataSyncStatus() {
        return dataSyncStatus;
    }

    public void setDataSyncStatus(Integer dataSyncStatus) {
        this.dataSyncStatus = dataSyncStatus;
    }

    public Integer getReportPeopleNumber() {
        return reportPeopleNumber;
    }

    public void setReportPeopleNumber(Integer reportPeopleNumber) {
        this.reportPeopleNumber = reportPeopleNumber;
    }

    public LocalDateTime getCreateTimeGmt() {
        return createTimeGmt;
    }

    public void setCreateTimeGmt(LocalDateTime createTimeGmt) {
        this.createTimeGmt = createTimeGmt;
    }

    public String getProjectUserCode() {
        return projectUserCode;
    }

    public void setProjectUserCode(String projectUserCode) {
        this.projectUserCode = projectUserCode;
    }

    public String getFactErpOrder() {
        return factErpOrder;
    }

    public void setFactErpOrder(String factErpOrder) {
        this.factErpOrder = factErpOrder;
    }
}
